home *** CD-ROM | disk | FTP | other *** search
- 10 rem This program is used to unpack the UniFLEX kermit BOO files.
- 20 width 0
- 30 n$ = chr$(0)
- 40 z = asc("0")
- 50 t = asc("~")-z
- 60 k$ = "ufksup.boo"
- 70 open old k$ as 1
- 80 input #1,f$ :rem Get the file name
- 90 open new f$ as 2
- 100 gosub 180
- 110 k$ = "ufkrmt.boo"
- 120 open old k$ as 1
- 130 input #1,f$ :rem Get the file name
- 140 open new f$ as 2
- 150 gosub 180
- 160 print "Processing completed."
- 170 exit
- 180 print k$;" ==> ";f$
- 190 on error goto 500
- 200 input #1,x$ :rem Get a line.
- 210 y$ = "" :rem Clear the output buffer.
- 220 goto 250
- 230 print #2,y$; :rem Print output buffer to file.
- 240 goto 200 :rem Get another line.
- 250 if len(x$) < 2 goto 230 :rem Is the input buffer empty?
- 260 a = asc(x$) - z
- 270 if a = t then goto 400 :rem Null repeat character?
- 280 if len(x$) < 3 goto 230 :rem Is the input buffer empty?
- 290 q$ = mid$(x$,2,3) :rem Get the quadruplet to decode.
- 300 x$ = mid$(x$,5)
- 310 b = asc(q$)-z
- 320 q$ = mid$(q$,2)
- 330 c = asc(q$)-z
- 340 q$ = mid$(q$,2)
- 350 d = asc(q$)-z
- 360 y$ = y$ + chr$(((a * 4) + (b / 16)) and 255) :rem Decode the quad.
- 370 y$ = y$ + chr$(((b * 16) + (c / 4)) and 255)
- 380 y$ = y$ + chr$(((c * 64) + d) and 255)
- 390 goto 250 :rem Get another quad.
- 400 x$ = mid$(x$,2) :rem Expand the nulls.
- 410 r = asc(x$) - z :rem Get the number of nulls.
- 420 x$ = mid$(x$,2)
- 430 for i = 1 to r :rem Loop, adding nulls to string.
- 440 y$ = y$ + n$
- 450 next i
- 460 print #2,y$; :rem Output the nulls to the file.
- 470 y$ = "" :rem Clear the output buffer.
- 480 goto 250
- 490 return
- 500 if err <> 8 then goto 530
- 510 close 1,2
- 520 resume 490
- 530 print "Error: ",err
- 540 stop
-